package cn.hs.tool;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;

import java.io.File;
import java.io.FileOutputStream;

/**
 * Created by Administrator on 2017/10/29.
 */
public class PDFTranslate {

    /**
     * 转换目录子目录(一级)下的pdf文档 txt
     */
    public static void paseDir(String dirPath){
        File dir = new File(dirPath);
        if (dir.exists() && dir.isDirectory()){
            for(File subDir : dir.listFiles()){
                int index = 0;//目录下可能有多个文件
                for(File pdfFile : subDir.listFiles()){
                    //一级子目录

                    if (pdfFile.getName().endsWith(".pdf")){
                        index++;
                        translateToTxt(subDir.getAbsolutePath(),pdfFile,index);
                    }
                }
            }
        }
    }

    private static void translateToTxt(String path,File pdfFile,int index){
        PDDocument document = null;
        try
        {
            // 方式一：
            /**
             InputStream input = null;
             input = new FileInputStream( pdfFile );
             //加载 pdf 文档
             PDFParser parser = new PDFParser(new RandomAccessBuffer(input));
             parser.parse();
             document = parser.getPDDocument();
             **/

            // 方式二：
            document= PDDocument.load(pdfFile);

            // 获取页码
            int pages = document.getNumberOfPages();

            // 读文本内容
            PDFTextStripper stripper=new PDFTextStripper();
            // 设置按顺序输出
            stripper.setSortByPosition(true);
            stripper.setStartPage(1);
            stripper.setEndPage(pages);
            String content = stripper.getText(document);
            FileOutputStream fos = new FileOutputStream(path + File.separator + "out_"+index+".txt");
            fos.write(content.getBytes());
            fos.close();
            System.out.println(content);
        }
        catch(Exception e)
        {
            System.out.println(e);
        }
    }
}
